LLM Inference API ju lejon të ekzekutoni modele të mëdha gjuhësore (LLM) plotësisht në pajisje, të cilat mund t'i përdorni për të kryer një gamë të gjerë detyrash, të tilla si gjenerimi i tekstit, marrja e informacionit në formën e gjuhës natyrore dhe përmbledhja e dokumenteve. Detyra ofron mbështetje të integruar për modele të shumta të gjuhëve të mëdha tekst-me-tekst, kështu që ju mund të aplikoni modelet më të fundit të AI gjeneruese në pajisje në aplikacionet dhe produktet tuaja.
Detyra ofron mbështetje të integruar për një shumëllojshmëri të LLM-ve. Modelet e vendosura në faqen e Komunitetit LiteRT disponohen në një format të përshtatshëm për MediaPipe dhe nuk kërkojnë ndonjë hap shtesë konvertimi ose përpilimi.
Ju mund të përdorni AI Edge Torch për të eksportuar modelet e PyTorch në modelet LiteRT ( tflite
) me shumë nënshkrime, të cilat janë të bashkuara me parametrat e tokenizuesit për të krijuar Paketat e Detyrave. Modelet e konvertuara me AI Edge Torch janë të pajtueshme me LLM Inference API dhe mund të funksionojnë në backend të CPU, duke i bërë ato të përshtatshme për aplikacionet Android dhe iOS.
Filloni
Filloni ta përdorni këtë detyrë duke ndjekur një nga këto udhëzues zbatimi për platformën tuaj të synuar. Këta udhëzues specifikë për platformën ju udhëzojnë përmes një zbatimi bazë të kësaj detyre, me shembuj kodesh që përdorin një model të disponueshëm dhe opsionet e rekomanduara të konfigurimit:
Web :
Android :
iOS
Detajet e detyrës
Ky seksion përshkruan aftësitë, hyrjet, daljet dhe opsionet e konfigurimit të kësaj detyre.
Veçoritë
LLM Inference API përmban karakteristikat kryesore të mëposhtme:
- Gjenerimi nga tekst në tekst - Gjeneroni tekst bazuar në një kërkesë teksti hyrës.
- Zgjedhja e LLM - Aplikoni modele të shumta për të përshtatur aplikacionin për rastet tuaja specifike të përdorimit. Ju gjithashtu mund të ritrajnoni dhe aplikoni pesha të personalizuara për modelin.
- Mbështetja LoRA - Zgjeroni dhe personalizoni aftësinë LLM me modelin LoRA ose duke u trajnuar në të gjithë grupin tuaj të të dhënave, ose duke marrë modele të përgatitura të parandërtuara LoRA nga komuniteti me burim të hapur (jo në përputhje me modelet e konvertuara me API-në gjeneruese të AI Edge Torch).
Hyrjet e detyrave | Rezultatet e detyrave |
---|---|
LLM Inference API pranon hyrjet e mëposhtme:
| LLM Inference API nxjerr rezultatet e mëposhtme:
|
Opsionet e konfigurimeve
Kjo detyrë ka opsionet e mëposhtme të konfigurimit:
Emri i opsionit | Përshkrimi | Gama e vlerave | Vlera e paracaktuar |
---|---|---|---|
modelPath | Rruga për ku modeli është ruajtur në direktorinë e projektit. | SHTEG | N/A |
maxTokens | Numri maksimal i argumenteve (tokenet hyrëse + tokenat e daljes) që trajton modeli. | Numër i plotë | 512 |
topK | Numri i shenjave që modeli merr në konsideratë në çdo hap të gjenerimit. Kufizon parashikimet në k-tokenat më të mundshëm. | Numër i plotë | 40 |
temperature | Sasia e rastësisë së paraqitur gjatë gjenerimit. Një temperaturë më e lartë rezulton në më shumë kreativitet në tekstin e krijuar, ndërsa një temperaturë më e ulët prodhon gjenerim më të parashikueshëm. | noton | 0.8 |
randomSeed | Fara e rastësishme e përdorur gjatë gjenerimit të tekstit. | Numër i plotë | 0 |
loraPath | Rruga absolute drejt modelit LoRA lokalisht në pajisje. Shënim: kjo është e përputhshme vetëm me modelet GPU. | SHTEG | N/A |
resultListener | Vendos dëgjuesin e rezultateve që të marrë rezultatet në mënyrë asinkrone. Zbatohet vetëm kur përdoret metoda e gjenerimit asinkron. | N/A | N/A |
errorListener | Vendos një dëgjues opsional gabimi. | N/A | N/A |
Modelet
API-ja e konkluzionit LLM mbështet shumë modele të gjuhëve të mëdha tekst-në-tekst, duke përfshirë mbështetjen e integruar për disa modele që janë optimizuar për t'u ekzekutuar në shfletues dhe pajisje celulare. Këto modele të lehta mund të përdoren për të ekzekutuar konkluzionet plotësisht në pajisje.
Përpara se të inicializoni API-në e konkluzionit LLM, shkarkoni një model dhe ruajeni skedarin brenda drejtorisë së projektit tuaj. Mund të përdorni një model të konvertuar paraprakisht nga depoja e LiteRT Community HuggingFace, ose të konvertoni një model në një format të pajtueshëm me MediaPipe me konvertuesin gjenerues të AI Edge Torch .
Nëse nuk keni tashmë një LLM për ta përdorur me API-në e konkluzionit LLM, filloni me një nga modelet e mëposhtme.
Gemma-3 1B
Gemma-3 1B është modeli më i fundit në familjen Gemma të modeleve të hapura me peshë të lehtë dhe moderne të ndërtuara nga i njëjti kërkim dhe teknologji e përdorur për krijimin e modeleve Gemini . Modeli përmban parametra 1B dhe pesha të hapura. Varianti 1B është modeli më i lehtë në familjen Gemma, duke e bërë atë ideal për shumë raste përdorimi në pajisje.
Modeli Gemma-3 1B nga HuggingFace është i disponueshëm në formatin .task
dhe i gatshëm për t'u përdorur me LLM Inference API për aplikacionet Android dhe Web.
Kur përdorni Gemma-3 1B me LLM Inference API, konfiguroni opsionet e mëposhtme në përputhje me rrethanat:
-
preferredBackend
: Përdorni këtë opsion për të zgjedhur midis një prapavijëCPU
oseGPU
. Ky opsion është i disponueshëm vetëm për Android. -
supportedLoraRanks
: API-ja e konkluzionit LLM nuk mund të konfigurohet për të mbështetur Përshtatjen e Rangut të Ulët (LoRA) me modelin Gemma-3 1B. Mos përdorni opsionetsupportedLoraRanks
oseloraRanks
. -
maxTokens
: Vlera përmaxTokens
duhet të përputhet me madhësinë e kontekstit të integruar në model. Kjo mund të referohet gjithashtu si cache-kyç-Value (KV) ose gjatësia e kontekstit. -
numResponses
: Duhet të jetë gjithmonë 1. Ky opsion është i disponueshëm vetëm për Web.
Kur ekzekutoni Gemma-3 1B në aplikacione ueb, inicializimi mund të shkaktojë një bllokim të gjatë në fillin aktual. Nëse është e mundur, drejtojeni gjithmonë modelin nga një fije punëtore.
Gemma-2 2B
Gemma-2 2B është një variant 2B i Gemma-2 dhe funksionon në të gjitha platformat.
Modeli përmban parametra 2B dhe pesha të hapura. Gemma-2 2B është i njohur për aftësitë më të fundit të arsyetimit për modelet në klasën e tij.
Konvertimi i modelit PyTorch
Modelet gjeneruese të PyTorch mund të konvertohen në një format të pajtueshëm me MediaPipe me API-në gjeneruese të AI Edge Torch . Ju mund të përdorni API për të kthyer modelet PyTorch në modele LiteRT (TensorFlow Lite) me shumë nënshkrime. Për më shumë detaje mbi hartimin dhe eksportimin e modeleve, vizitoni faqen AI Edge Torch GitHub .
Konvertimi i një modeli PyTorch me AI Edge Torch Generative API përfshin hapat e mëposhtëm:
- Shkarkoni pikat e kontrollit të modelit PyTorch.
- Përdorni API-në gjeneruese të AI Edge Torch për të autorizuar, konvertuar dhe kuantizuar modelin në një format skedari të pajtueshëm me MediaPipe (
.tflite
). - Krijoni një grup detyrash (
.task
) nga skedari tflite dhe modeli i tokenizuesit.
Konvertuesi Torch Generative konvertohet vetëm për CPU dhe kërkon një makinë Linux me të paktën 64 GB RAM.
Për të krijuar një grup detyrash, përdorni skriptin e paketimit për të krijuar një grup detyrash . Procesi i grumbullimit e paketon modelin e hartuar me meta të dhëna shtesë (p.sh. Parametrat e Tokenizer) të nevojshme për të ekzekutuar konkluzionet nga fundi në fund.
Procesi i grumbullimit të modelit kërkon paketën MediaPipe PyPI. Skripti i konvertimit është i disponueshëm në të gjitha paketat MediaPipe pas 0.10.14
.
Instaloni dhe importoni varësitë me sa vijon:
$ python3 -m pip install mediapipe
Përdorni bibliotekën genai.bundler
për të bashkuar modelin:
import mediapipe as mp
from mediapipe.tasks.python.genai import bundler
config = bundler.BundleConfig(
tflite_model=TFLITE_MODEL,
tokenizer_model=TOKENIZER_MODEL,
start_token=START_TOKEN,
stop_tokens=STOP_TOKENS,
output_filename=OUTPUT_FILENAME,
enable_bytes_to_unicode_mapping=ENABLE_BYTES_TO_UNICODE_MAPPING,
)
bundler.create_bundle(config)
Parametri | Përshkrimi | Vlerat e pranuara |
---|---|---|
tflite_model | Rruga drejt modelit TFLite të eksportuar nga AI Edge. | SHTEG |
tokenizer_model | Rruga drejt modelit të tokenizuesit SentencePiece. | SHTEG |
start_token | Shenja fillestare specifike e modelit. Shenja e fillimit duhet të jetë e pranishme në modelin e dhënë të tokenizuesit. | STRING |
stop_tokens | Modele specifike të ndalimit. Shenjat e ndalimit duhet të jenë të pranishëm në modelin e dhënë të tokenizuesit. | LIST[STRING] |
output_filename | Emri i skedarit të grupit të detyrave dalëse. | SHTEG |
Përshtatje LoRA
API-ja e konkluzionit të Mediapipe LLM mund të konfigurohet për të mbështetur Përshtatjen e Rangut të Ulët (LoRA) për modelet e gjuhëve të mëdha. Duke përdorur modele LoRA të rregulluara mirë, zhvilluesit mund të personalizojnë sjelljen e LLM-ve përmes një procesi trajnimi me kosto efektive.Mbështetja LoRA e API-së LLM Inference funksionon për të gjitha variantet Gemma dhe modelet Phi-2 për prapavijën e GPU-së, me peshat LoRA të zbatueshme vetëm për shtresat e vëmendjes. Ky zbatim fillestar shërben si një API eksperimentale për zhvillimet e ardhshme me plane për të mbështetur më shumë modele dhe lloje të ndryshme shtresash në përditësimet e ardhshme.
Përgatitni modelet LoRA
Ndiqni udhëzimet në HuggingFace për të trajnuar një model LoRA të akorduar mirë në grupin tuaj të të dhënave me llojet e modeleve të mbështetura, Gemma ose Phi-2. Modelet Gemma-2 2B , Gemma 2B dhe Phi-2 janë të dy të disponueshme në HuggingFace në formatin e siguresave. Meqenëse LLM Inference API mbështet LoRA vetëm në shtresat e vëmendjes, specifikoni vetëm shtresat e vëmendjes gjatë krijimit të LoraConfig
si më poshtë:
# For Gemma
from peft import LoraConfig
config = LoraConfig(
r=LORA_RANK,
target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
)
# For Phi-2
config = LoraConfig(
r=LORA_RANK,
target_modules=["q_proj", "v_proj", "k_proj", "dense"],
)
Për testim, ekzistojnë modele LoRA të akorduara mirë të aksesueshme nga publiku që përshtaten me API-në e konkluzionit LLM të disponueshme në HuggingFace. Për shembull, monsterapi/gemma-2b-lora-maths-orca-200k për Gemma-2B dhe lole25/phi-2-sft-ultrachat-lora për Phi-2.
Pas trajnimit për grupin e të dhënave të përgatitur dhe ruajtjes së modelit, ju merrni një skedar adapter_model.safetensors
që përmban peshat e modelit LoRA të rregulluara mirë. Skedari i siguruesve është pika e kontrollit LoRA e përdorur në konvertimin e modelit.
Si hap tjetër, ju duhet të konvertoni peshat e modelit në një TensorFlow Lite Flatbuffer duke përdorur Paketën MediaPipe Python. ConversionConfig
duhet të specifikojë opsionet e modelit bazë, si dhe opsionet shtesë të LoRA. Vini re se meqenëse API mbështet vetëm konkluzionet LoRA me GPU, pjesa e pasme duhet të vendoset në 'gpu'
.
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
# Other params related to base model
...
# Must use gpu backend for LoRA conversion
backend='gpu',
# LoRA related params
lora_ckpt=LORA_CKPT,
lora_rank=LORA_RANK,
lora_output_tflite_file=LORA_OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
Konvertuesi do të nxjerrë dy skedarë TFLite flatbuffer, një për modelin bazë dhe tjetri për modelin LoRA.
Konkluzioni i modelit LoRA
Web, Android dhe iOS LLM Inference API janë përditësuar për të mbështetur konkluzionet e modelit LoRA.
Android mbështet LoRA statike gjatë inicializimit. Për të ngarkuar një model LoRA, përdoruesit specifikojnë shtegun e modelit LoRA si dhe bazën LLM.// Set the configuration options for the LLM Inference task
val options = LlmInferenceOptions.builder()
.setModelPath('<path to base model>')
.setMaxTokens(1000)
.setTopK(40)
.setTemperature(0.8)
.setRandomSeed(101)
.setLoraPath('<path to LoRA model>')
.build()
// Create an instance of the LLM Inference task
llmInference = LlmInference.createFromOptions(context, options)
Për të ekzekutuar konkluzionet LLM me LoRA, përdorni të njëjtat generateResponse()
generateResponseAsync()
si modeli bazë.